from langchain_community.agent_toolkits.load_tools import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain_experimental.utilities import PythonREPL
from langchain_openai import AzureChatOpenAI
from tool import get_azure_endpoint,get_api_key,get_api_version

if __name__ == '__main__':
    # 参数temperature设置为0.0，从而减少生成答案的随机性。
    llm = AzureChatOpenAI(
        azure_endpoint=get_azure_endpoint().rstrip('/'),  # 移除尾部斜杠，只保留基础URL
        azure_deployment="gpt-4o",  # 重命名为 azure_deployment
        model_name="gpt-4o",
        openai_api_version=get_api_version(),  # 参数名不变
        openai_api_key=get_api_key(),
        openai_api_type="azure",
        temperature=0.0,
    )

    tools = load_tools(["llm-math", "wikipedia"], llm=llm  # 第一步初始化的模型
                       )
    # 初始化代理
    agent = initialize_agent(
        tools,  # 第二步加载的工具
        llm,  # 第一步初始化的模型
        agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION, #代理类型
        handle_parsing_errors=True, #处理解析错误
        verbose=True  # 输出中间步骤
    )
    response = agent("计算300的25%")
    print(response)

    question = "Tom M. Mitchell是一位美国计算机科学家，\ 也是卡内基梅隆大学(CMU)的创始人大学教授。\ 他写了哪本书呢?"
    response = agent(question)
    print(response)